﻿using SportsPlatform.Base;
using SportsPlatform.Dto.WeChat;
using SportsPlatform.Query.WeChat;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.WeChat.IWeChat
{
    /// <summary>
    /// 首页接口
    /// </summary>
    public interface IIndexService
    {
        /// <summary>
        ///  赛事列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PagePagingDto<GetHotCompetitionListDto>> GetHotCompetitionList(GetHotCompetitionListQuery query);

        /// <summary>
        /// 获取赛事详情
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetIndexCompetitionDetailsDto>> GetCompetitionDetails(GetCompetitionDetailsQuery query);

        /// <summary>
        /// 获取赛事比赛项目
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetCompetitionProjectListDto>> GetCompetitionProjectList(GetCompetitionProjectListQuery query);

        /// <summary>
        /// 通过查询条件获取分页后的赛事列表
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PagePagingDto<GetHotCompetitionListDto>> GetCompetitionList(GetCompetitionListQuery query);
        // Task<PagePagingDto<GetCompetitionListDto>> GetCompetitionList(GetCompetitionListQuery query);

        /// <summary>
        /// 根据年份获取赛事名称集合
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultListDto<GetYearCompetitionNameDto>> GetYearCompetitionName(GetYearCompetitionNameQuery query);

        /// <summary>
        /// 获取赛事项目名称集合
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultListDto<GetCompetitionProjectNameDto>> GetCompetitionProjectName(GetCompetitionProjectNameQuery query);

        /// <summary>
        /// 获取成绩信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetAchievementInfoDto>> GetAchievementInfo(GetAchievementInfoQuery query);

        /// <summary>
        /// 获取历史成绩信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultListDto<GetHistoryAchievementInfoDto>> GetHistoryAchievementInfo(GetHistoryAchievementInfoQuery query);

        /// <summary>
        /// 首页获取热门赛事列表
        /// </summary>
        /// <returns></returns>
        Task<ResultListDto<GetHotCompetitionListDto>> GetHotCompetitionList();
    }
}
